package com.aaa.service;

import com.aaa.entity.Dept;
import com.aaa.entity.PageSort;
import com.aaa.entity.Userinfo;
import com.github.pagehelper.Page;

import java.util.List;
import java.util.Map;

/**
 * @author ：Teacher陈（86521760@qq.com）
 * @date ：Created in 2022/6/22 11:07
 * @description：
 * @modified By：
 * @version:
 */
public interface UserService {
    /**
     * 查找全部用户，分页+模糊查询+排序
     * @param pageSort
     * @return Page
     */
    Page findAllUser(PageSort pageSort);
    /**
     * 用户名唯一性校验,查找不同名字
     * @param userinfo
     * @return boolean
     */
    boolean findNoSameName(Userinfo userinfo);
    /**
     * 添加新用户，同步添加中间表tbl_user_role
     * @param userinfo
     * @return boolean
     */
    boolean addUser(Userinfo userinfo);
    /**
     * 通过id删除用户（单个和批量通用）(修改状态，不做物理删除)
     * @param userids
     * @return boolean
     */
    boolean deleteUserById(String[] userids);
    /**
     * 重置用户密码
     * @param userinfo
     * @return boolean
     */
    boolean resetPassword(Userinfo userinfo);
    /**
     * 修改用户信息
     * @param userinfo
     * @return boolean
     */
    boolean updateUser(Userinfo userinfo);

    List<Map<String, Object>> findAllUserInfoByName(Map map);
    /**
     * 获取全部部门
     * @return List<Dept>
     */
    List<Dept> queryAllDept();
    /**
     * @create by: Fmc
     * @description: 通过session获取用户id并查找个人信息
     * @create time: 2022/6/29 10:06
     * @return: Userinfo
     */
    Userinfo selectById(Integer userid);
    /**
     * @create by: Fmc
     * @description: 修改个人信息
     * @create time: 2022/6/29 18:11
     * @return: boolean
     */
    boolean updateOneself(Userinfo userinfo);
}
